package main

import "fmt"

type student struct {
	id    int //id唯一
	name  string
	class string
}

//学生的构造函数，返回结果是内存中学生的指针地址
func newStudent(id int, name string, class string) *student {
	return &student{
		id:    id,
		name:  name,
		class: class,
	}
}

//学员管理类型
type studentMgr struct {
	allStudents []*student //为啥用指针？可以通过指针直接操作student内部属性
}

//学员管理类型构造函数
func newStudentMgr() *studentMgr {
	return &studentMgr{
		//切片初始化
		allStudents: make([]*student, 0, 100),
	}
}

//添加学员
func (s *studentMgr) addStudent(newStu *student) {
	s.allStudents = append(s.allStudents, newStu)
}

//编辑学员
func (s *studentMgr) modifyStudent(newStu *student) {
	for i, v := range s.allStudents {
		if newStu.id == v.id { //当学号相同，则表示找到了要修改的学生
			s.allStudents[i] = newStu
			return
		}
	}
	//没找到
	fmt.Printf("输入的学生信息有误，没有找到学号为%d的学生", newStu.id)
}

//展示学员
func (s *studentMgr) showStudent() {
	for _, v := range s.allStudents {
		fmt.Printf("学号：%d 姓名：%s 班级：%s\n", v.id, v.name, v.class)
	}
}

//删除学员
//func (s *studentMgr) delStudent(newStu *student) {
//	for i,v :=range s.allStudents{
//		if newStu.id ==v.id{//当学号相同，则表示找到了要修改的学生
//			s.allStudents = append(s.allStudents[:1], s.allStudents[2:]...)
//			return
//		}
//	}
//	//没找到
//	fmt.Printf("输入的学生信息有误，没有找到学号为%d的学生",newStu.id)
//
//}
